package com.jy.adscm.system.service;

import com.baomidou.mybatisplus.service.IService;
import com.jy.adscm.bean.system.JyMenu;
import com.jy.adscm.exception.AdscmSystemException;

import java.util.List;

/**
 * <p>
 * 系统菜单表 服务类
 * </p>
 *
 * @author yyy
 * @since 2018-08-01
 */
public interface JyMenuService extends IService<JyMenu> {

    /**
     * 根据菜单ID删除菜单
     * @param menuId
     */
    public void delMenu(int menuId)throws  AdscmSystemException;

    /**
     * 获取指定用户能访问的所有菜单集合
     * @param tokenId
     * @return
     */
//    public List<JyMenu> getUsersUrls(String tokenId) throws AdscmSystemException;

    /**
     * 增加菜单
     * @param menu
     * @throws AdscmSystemException
     */
    public void addMenu(JyMenu menu) throws AdscmSystemException;
    /**
     * 修改菜单
     * @param menu
     * @throws AdscmSystemException
     */
    public void editMenu(JyMenu menu) throws AdscmSystemException;
    /**
     * 根据上级菜单，获取下一级菜单
     * @param parentMenuId
     * @throws AdscmSystemException
     */
    public List<JyMenu> getMenuByParentId(int parentMenuId) throws AdscmSystemException;
    /**
     * 获取整个菜单树
     * @throws AdscmSystemException
     */
    public JyMenu getAllMenuList() throws AdscmSystemException;
    /**
     * 根据菜单名称模糊查询这个菜单以及他的子菜单
     * @param menuName
     * @throws AdscmSystemException
     */
    public List<JyMenu> getMenuByName(String menuName) throws AdscmSystemException;

    /**
     * 根据指定菜单ID和指定用户，获取这个用户能对这个菜单的操作URL集合
     * @param menuId
     * @param tokenId
     * @return
     * @throws AdscmSystemException
     */
    public List<JyMenu> getMenuAllSrc(int menuId,String tokenId) throws AdscmSystemException;

    public void ttt(int menuId);

    /**
     * 根据角色，获取这个角色能发访问的所有资源及菜单
     * @param roleId
     * @return
     */
    List<JyMenu> getRolesSrc(int roleId);
}
